package top.chmin.project.cloud.common.code.template.auto;


import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import top.chmin.project.cloud.common.entity.Page;

import java.time.LocalDateTime;

/**
 * chmin
 * 2023-12-27 19:56:45
 * cloud-builder
 */
public interface CodeTemplateSelectPage {

    @PostMapping("/au/codeTemplate/selectPage")
    Page<Result> selectPage(@RequestBody Param param);

    @Getter
    @Setter
    @Accessors(chain = true)
    class Param extends Page<Result> {
        // 编码补齐长度
        Integer fixLength;
        // 步进最大值
        Integer maxStep;
        // 步进最小值
        Integer minStep;
        // 编码生成第一个值
        Integer initValue;
        // 编码中的时间串格式
        String codeDateTimeFormat;
        // 编码前缀
        String prefix;
        // 编码名称
        String codeName;
        // 修改人
        String updateBy;
        // 创建人
        String createBy;
        // ID
        Long id;
        // 修改时间
        LocalDateTime[] updateTime;
        // 创建时间
        LocalDateTime[] createTime;
    }

    @Getter
    @Setter
    @Accessors(chain = true)
    class Result {
        // 编码补齐长度
        Integer fixLength;
        // 步进最大值
        Integer maxStep;
        // 步进最小值
        Integer minStep;
        // 编码生成第一个值
        Integer initValue;
        // 编码中的时间串格式
        String codeDateTimeFormat;
        // 编码前缀
        String prefix;
        // 编码名称
        String codeName;
        // 修改时间
        LocalDateTime updateTime;
        // 创建时间
        LocalDateTime createTime;
        // 修改人
        String updateBy;
        // 创建人
        String createBy;
        // ID
        Long id;
// field relation auto
    }

}
